package 简单.模拟;

/**
 * 给你由 n 个小写字母字符串组成的数组 strs，其中每个字符串长度相等。
 * 这些字符串可以每个一行，排成一个网格。例如，strs = ["abc", "bce", "cae"] 可以排列为：
 * abc
 * bce
 * cae
 * 你需要找出并删除 不是按字典序升序排列的 列。在上面的例子（下标从 0 开始）中，列
 * 0（'a', 'b', 'c'）和列 2（'c', 'e', 'e'）都是按升序排列的，而列 1（'b', 'c', 'a'）
 * 不是，所以要删除列 1 。
 * 返回你需要删除的列数。
 * <p>
 * 来源：力扣（LeetCode）
 * 链接：https://leetcode.cn/problems/delete-columns-to-make-sorted
 */
public class 删列造序_944 {

    public static void main(String[] args) {

        String[] strs = {"cba", "daf", "ghi"};
        System.out.println(minDeletionSize(strs));

    }

    /**
     * 模拟
     *
     * @param strs
     * @return
     */
    public static int minDeletionSize(String[] strs) {
        int count = 0;
        for (int i = 0; i < strs[0].length(); i++) {
            boolean flag = false;
            for (int j = 1; j < strs.length; j++) {
                if (strs[j].charAt(i) < strs[j - 1].charAt(i)) {
                    flag = true;
                    break;
                }
            }
            if (flag) count++;
        }
        return count;
    }

}
